import {
	Validator
} from './validator'

/**
 * 断言,用于数据校验
 * 如果不符合预期则抛出相关格式的异常
 */
export class Assert {
	/**
	 * 参数是否为空
	 * @param name
	 * @param value
	 */
	static isNull(value, name) {
		if (value === undefined || value === '' || value === null) {
			throw new Error(`参数 "${name}" 不能为空`)
		}
	}

	// noinspection JSUnusedGlobalSymbols
	static isNumber(value, name) {
		if (!Validator.isNumber(value)) {
			throw new Error(`参数 "${name}" 必须是数字`)
		}
	}

	static isPositiveInt(value, name, allowNull = false) {
		if (allowNull && !value) {
			return
		}
		if (!Validator.isPositiveInt(value)) {
			throw new Error(`参数 "${name}" 必须是正整数`)
		}
	}
}
